package com.ruoyi.goodsStore.mapper;

import java.util.List;
import com.ruoyi.goodsStore.domain.GoodsStore;
import io.lettuce.core.dynamic.annotation.Param;

/**
 * 商品存储Mapper接口
 * 
 * @author ruoyi
 * @date 2024-11-01
 */
public interface GoodsStoreMapper 
{
    /**
     * 查询商品存储
     * 
     * @param goodsId 商品存储主键
     * @return 商品存储
     */
    public GoodsStore selectGoodsStoreByGoodsId(Long goodsId);

    /**
     * 查询商品存储列表
     * 
     * @param goodsStore 商品存储
     * @return 商品存储集合
     */
    public List<GoodsStore> selectGoodsStoreList(GoodsStore goodsStore);

    /**
     * 查询没有新增的存储列表
     *
     * @param goodsStore 商品存储
     * @return 商品存储集合
     */
    public List<GoodsStore> select(GoodsStore goodsStore);

    /**
     * 查询修改的存储列表
     *
     * @param goodsStore 商品存储
     * @return 商品存储集合
     */
    public List<GoodsStore> selectup(GoodsStore goodsStore);

    /**
     * 新增商品存储
     * 
     * @param goodsStore 商品存储
     * @return 结果
     */
    public int insertGoodsStore(GoodsStore goodsStore);

    /**
     * 修改商品存储
     * 
     * @param goodsStore 商品存储
     * @return 结果
     */
    public int updateGoodsStore(GoodsStore goodsStore);

    /**
     * 删除商品存储
     * 
     * @param goodsId 商品存储主键
     * @return 结果
     */
    public int deleteGoodsStoreByGoodsId(Long goodsId);

    /**
     * 批量删除商品存储
     * 
     * @param goodsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGoodsStoreByGoodsIds(Long[] goodsIds);

    /**
     * 查询出库货位Id
     * @param goodsId
     * @return
     */
    public List<GoodsStore> selectLocalIdListByGoodsId(int goodsId, int length);

    /**
     * 修改库存状态
     * @param goodsId
     * @param length
     * @return
     */
    public int updateStock(int goodsId, int length);
}
